#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
//int main()
//{
//	double sum_score = 0.0;
//	double min_score = 100.0;
//	double max_score = 0.0;
//	double score = 0.0;
//	int n;
//	scanf("%d", &n);
//	for (int i = 1; i <= n; i++)
//	{
//		scanf("%lf", &score);
//		sum_score += score;
//		max_score = max_score < score ? score : max_score;
//		min_score = min_score > score ? score : min_score;
//	}
//	printf("%.2lf %.2lf %.2lf", max_score, min_score, sum_score/n);
//	return 0;
//}
//int main()
//{
//	int a, b, d;
//	float c, s,p;
//	scanf("%d %d %d", &a, &b, &d);
//	if (a + b > d && a + d > b && b + d > a)
//	{
//		c = a + b + d;
//		p = c / 2;
//		s = sqrt(p * (p - a) * (p - b) * (p - d));
//	}
//	printf("circumference=%.2f area=%.2f", c, s);
//    return 0;
//}
//int main()
//{
//	int n, h, m,l;
//	scanf("%d %d %d", &n, &h, &m);
//	if (m % h != 0)
//	{
//		l = m / h + 1;
//	}
//	else
//		l = m / h;
//	printf("%d", n-l);
//	return 0;
//}
//int main()
//{
//	double c,f;
//	scanf("%lf", &f);
//	c = 5.0 / 9.0 * (f - 32.0);
//	printf("%.3lf", c);
//	return 0;
//}
//int main()
//{
//	int r;
//	float s;
//	scanf("%d", &r);
//	s = 3.14 * r * r;
//	printf("%.2f", s);
//	return 0;
//}
//int main()
//{
//	int n, m;
//	float sum;
//	scanf("%d %d", &n, &m);
//	sum = 1.0 / (1.0 / n + 1.0 / m);
//	printf("%.1f", sum);
//	return 0;
//}
//int main()
//{
//	int h, r,n;
//	float v;
//	scanf("%d %d", &h, &r);
//	v = 3.14 * r * r * h;
//	if (10000 % (int)v != 0)
//	{
//		n = 10000 / v + 1;
//	}
//	else
//		n = 10000 / v;
//	printf("%d", n);
//	return 0;
//}
//int main()
//{
//	int a, b, c;
//	scanf("%d %d", &a, &b);
//	c = b + b - a;
//	printf("%d", c);
//	return 0;
//}
//int main()
//{
//	int r;
//	double v;
//	scanf("%d", &r);
//	v = (4.0/3.0) * 3.14 * r * r * r;
//	printf("%.2lf", v);
//	return 0;
//
//}
//int main()
//{
//	int h, f, k;
//	scanf("%d:%d %d", &h, &f, &k);
//	h = ((f + k) / 60 + h) % 24;
//	f = (f + k) % 60;
//	printf("%02d:%02d", h, f);
//	return 0;
//}
//int main()
//{
//	int n,k;
//	scanf("%d", &n);
//	if ((n + 1) % 12 != 0)
//	{
//		k = (n + 1) / 12 + 1;
//	}
//	else
//	{
//		k = (n + 1) / 12;
//	}
//	k = (k - 1) * 4 + 2;
//	printf("%d", k);
//	return 0;
//}
//int main()
//{
//	int a, b,max,min,x,n;
//	scanf("%d %d", &a, &b);
//	x = a > b ? a : b;
//	n = a > b ? b : a;
//	for (int i =n ; i>=1; i--)
//	{
//		if (a % i == 0&& b % i == 0)
//		{
//				min = i;
//				break;
//		}
//	}
//	for (int i = x; 1000000000>i; i++)
//	{
//		if (i % x == 0&& i % n == 0)
//		{
//				max = i;
//				break;
//		}
//	}
//	printf("%d", max + min);
//	return 0;
//
//}
int main()
{
    long long n = 0;
    long long m = 0;
    scanf("%d %d", &n, &m);
    long long t1 = n;
    long long t2 = m;
    while (n % m != 0)
    {
        long long  tmp = n;
        n = m;
        m = tmp % m;
    }
    printf("%lld", m + t1 * t2 / m);
}